<?php 
class CategoryModel extends Model{
	public $table='category';
	//添加栏目是进行验证
	// array(' 表单字段名 ',' 验证方法 ',' 错误信息 ',' 验证条件 ',' 验证时机 ')
	public $validate=array(
		array('catname','nonull','栏目不能为空',2,3),
		array('catname','checkCatName','栏目已经存在',2,3)
		);
	
	//验证栏目是否存在
	// 自动验证函数 $name 为字段名 $value 为字段值 $msg 为错误信息 $arg 为参数
	public function checkCatName($name,$value,$msg,$arg){
		$data=M('category')->where("catname='$value'")->find();
		if($cid=Q('cid')){//编辑时  Q,传参方式
			return empty($data) || $data['cid']==$cid?true:$msg;
		}else{//添加时
			return $data?$msg:true;
		}
	}

	//获得栏目列表
	public function getList(){
		// 获取栏目数据
		$data=$this->all();
		// 获取栏目的树形结构,栏目父子关系
		// tree($data 数组, $title 字段名, $fieldPri = 'cid' 主键ID, $fieldPid = 'pid' 父ID)
		return Data::tree($data,'catname','cid','pid');
	}

	//添加栏目
	public function addCategory(){
		// 自动处理 create(),验证时用
		if($this->create()){
			if($this->add()){
				$this->success='添加栏目成功';
				return true;
			}else{
				$this->error='添加栏目失败';
			}
		}
	}

	//修改栏目
	public function editCategory(){
		if($this->create()){
			if($this->save()){//save 同update  
				return true;
			}else{
				$this->error='栏目 添加失败';
			}	
		}
	}
	
	/**
	 * 删除栏目
	 * @param  [int] $cid 栏目cid
	 * @return bool 
	 */
	public function delCategory($cid){
		//获得子栏目
		$sChannel = Data::channelList($this->all(),$cid);
		$categoryData = array_keys($sChannel);//array_keys — 返回数组中所有的键名
		//将当前栏目压入
		$categoryData[]=$cid;
		//删除文章
		$map['cid']=array('IN',$categoryData);
		M('content')->where($map)->del();
		//DELETE FROM content where cid IN(1,2,3,3);
		//删除栏目
		return $this->where($map)->del();
	}
		//获得子栏目 数组,父id,栏目前缀
		// channelLevel($data, $pid = 0, $html = "&nbsp;", 
// $fieldPri = 'cid', $fieldPid = 'pid', $level = 1)

}//栏目模型类结束